package dltec.job;

import java.util.Scanner;

public class job04 {

	/**
	 * 输入某年某月某日，判断这一天是这一年的第几天？
	分析：（1）以3月5日为例，应该先把前两个月的加起来，然后再加上5天即本年的第几天
      	（2）特殊情况，闰年2月份的天数是29天，否则是28天
	 */
	public static void main(String[] args) {
		
		Scanner s = new Scanner(System.in);
		System.out.print("请输入年：");
		int year = s.nextInt();
		System.out.print("请输入月：");
		int month = s.nextInt();
		System.out.print("请输入日：");
		int day = s.nextInt();
		
		//调用计算第几天的方法
		int num = getDat(year,month,day);
		System.out.println("该日期为当年的第：" + num + "天");

	}

	private static int getDat(int year, int month, int day) {
		
		//一、定义一个求前几个月和的sum变量
		int sum = 0;
		
		/**
		 * 二、定义一个装有0-11月总天数的数组
		 * 	第一位是0因为1月不需要加前面的月份   
		 *  不写0在后面遍历求和时，从i等于1开始
		 * 	最后位是11月份的天数，不需要12月份的。
		 */
		int[] month_date = {0,31,28,31,30,31,30,31,31,30,31,30};
		
		//三、判断是否是闰年，若果是2月份日期改为29
		if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)){
			month_date[1] = 29;
		}
		
		//计算前几个月的和   
		for(int i = 0; i < month ; i++){
			sum += month_date[i];
		}
		return day + sum;
	}

}
